import Toast from '@vant/weapp/toast/toast';
// import http from '../../api/http';
import http from '../../api/index'
const {
  baseURL
} = require("../../utils/request")
const citys = {
  一月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  二月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  三月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  四月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  五月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  六月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  七月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  八月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  九月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  十月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  十一月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  十二月: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
};
Page({
  data: {
    type: 1,
    //开关
    checked: true,
    baseURL: baseURL,
    facilitiesList: [],
    facilityList: [],
    value: '',
    content: '',
    contentTwo: '',
    campName: '',
    campPosition: '',
    campIphone: '',
    yourName: '',
    yourIphone: '',
    show: false,
    showTwo: false,
    columns: ['常规营地', '微型营地'],
    fileList: [],
    active: 0,
    steps: [{
        text: '营地信息',
      },
      {
        text: '服务设施',
      },
      {
        text: '营地介绍',
      },
    ],
    originalPrice: '',
    memberPrice: '',
    factor: '',
    campUp: [{
      vip: "300/天",
      notVip: "350/天",
      campCondition: [{
          text: '有水',
        },
        {
          text: '无电',
        },
        {
          text: '有WIFI',
        },
      ],
    }, ],

    columnsTwo: [{
        values: Object.keys(citys),
        className: 'column1',
      },
      {
        values: citys['一月'],
        className: 'column2',
        defaultIndex: 2,
      },
    ],
    // 保存选中的数据
    selectedItems: [],
    isTrue: true
  },
  //开关
  onSwitch({
    detail
  }) {
    // 需要手动对 checked 状态进行更新
    this.setData({
      checked: detail
    });
  },
  onNext() {
    var count = this.data.active
    count++;
    if (count <= 2) {
      this.setData({
        active: count
      })
    } else {
      this.setData({
        active: 0
      })
    }
    // console.log(this.data.info.campName)
    // console.log(this.data.active)

  },
  onUp() {
    var count = this.data.active
    count--;
    this.setData({
      active: count
    })
  },
  showPopup() {
    this.setData({
      show: true
    });
  },
  showTime() {
    this.setData({
      showTwo: true
    });
  },
  onClose() {
    this.setData({
      show: false
    });
  },
  onChange(event) {
    // event.detail 为当前输入的值
    console.log(event.detail);
  },
  onChangeTwo(event) {
    const {
      picker,
      value,
      index
    } = event.detail;
    picker.setColumnValues(1, citys[value[0]]);
  },
  onConfirm(event) {
    const {
      picker,
      value,
      index
    } = event.detail;
    Toast(`当前值：${value}, 当前索引：${index}`);
    this.setData({
      content: `${value}`,
      // show:true
    })
    console.log(event.detail.value)
    // console.log(this.data.show)
    // console.log(event)
    this.setData({
      show: false
    });
  },
  onConfirmTwo(event) {
    const {
      picker,
      value,
      index
    } = event.detail;
    Toast(`当前值：${value}, 当前索引：${index}`);
    this.setData({
      contentTwo: `${value}`,
      // show:true
    })
    this.setData({
      showTwo: false
    });
  },
  onCancel() {
    Toast('取消');
    this.setData({
      // content:`${value}`,
      show: false
    })
  },
  onCancelTwo() {
    Toast('取消');
    this.setData({
      // content:`${value}`,
      showTwo: false
    })
  },
  // 营地位置
  selectSite() {
    // 检查用户权限状态
    wx.getSetting({
      success: res => {
        if (!res.authSetting['scope.userLocation']) {
          // 用户尚未授权或已拒绝授权
          // 主动请求授权
          this.requestLocationAuthorization();
        } else {
          // 已经授权，直接获取位置信息
          this.getUserLocation();
        }
      }
    })
  },
  //获取位置信息
  getUserLocation() {
    wx.getLocation({
      // type: 'wgs84',
      type: 'gcj02',
      success: (res) => {
        console.log(res, "返回的数据")
        this.setData({
          latitude: res.latitude,
          longitude: res.longitude,
        });
        wx.chooseLocation({
          longitude: this.data.longitude,
          latitude: this.data.latitude,
          success: (res) => {
            console.log(res, '########');
            this.setData({
              latitude: res.latitude,
              longitude: res.longitude,
              campLocation: res.address,
              campPosition: res.address
            });
          },
          fail: err => {
            console.log(err)
          }
        })
      },
      fail: (err) => {
        console.error('获取位置失败:', err);
      },
      complete: () => {
        console.log('位置获取操作已完成');
      }
    });
  },
  // 请求授权
  requestLocationAuthorization() {
    // 请求用户授权精确位置
    wx.authorize({
      scope: 'scope.userLocation',
      success: () => {
        this.getUserLocation();
      },
      fail: (err) => {
        // 拒绝授权，提示用户收到开启
        this.showSettingPrompt()
      }
    })
  },
  showSettingPrompt() {
    wx.showModal({
      title: '需要位置权限',
      content: '请在设置中开启位置权限以正常使用本功能。',
      showCancel: false,
      confirmText: '去设置',
      success: (res) => {
        if (res.confirm) {
          wx.openSetting({
            success: (settingRes) => {
              if (settingRes.authSetting['scope.userLocation']) {
                // 用户在设置中开启了位置权限
                this.getUserLocation();
              } else {
                // 用户仍然拒绝位置权限
                console.log('用户仍未开启位置权限');
              }
            },
          });
        }
      },
    });
  },

  // 点击选择/取消选择
  isSelected: function (e) {
    const itemId = e.currentTarget.dataset.id;
    const outIndex = e.currentTarget.dataset.outIndex
    const innerIndex = e.currentTarget.dataset.innerIndex
    const {
      selectedItems
    } = this.data
    // 检查是否已经选择过该项
    const index = selectedItems.indexOf(itemId);
    console.log(index)
    var facilitiesList = this.data.facilitiesList;
    if (index === -1) {
      // 如果未选中，添加到已选数组
      selectedItems.push(itemId);
      facilitiesList[outIndex].facilityList[innerIndex].state = 2
    } else {
      // 如果已选中，移除该项
      selectedItems.splice(index, 1);
      facilitiesList[outIndex].facilityList[innerIndex].state = 1
    }
    // 更新选中的项
    this.setData({
      selectedItems: selectedItems,
      facilitiesList: facilitiesList
    });
    console.log("this.data.facilitiesList = ", this.data.facilitiesList, outIndex, innerIndex)
  },
  // 获取已选中的数据并合并
  getSelectedData: function () {
    const {
      selectedItems
    } = this.data;
    console.log("选中的数据", selectedItems)
  },
  getFacilitiesList() {
    http.serviceFacilities().then(res => {
      if (res.code == 200) {
        let facilitiesList = res.rows.filter(item => {
          return item.state == "1"
        })
        this.setData({
          facilitiesList: facilitiesList
        })
        console.log(res)
      }
    })
  },
  addConditionType() {
    wx.navigateTo({
      url: '/pages/addCampType/addCampType',
    })
  },
  //用户提交营地数据
  async toAdmit() {
    await this.toCampPreview()
    await this.subService()
  },

  async toCampPreview(e) {
    // console.log(e,"事件对象")
    // let id = e.currentTarget.dataset.id;
    // wx.redirectTo({
    //   url: `/pages/detail/detail?campId=${id}`,
    // })
    let data = this.data.facilitiesList
    if (data) {
      wx.setStorageSync('facilitites', data)
      // wx.setStorageSync('campId', campId)
    }
    //图片转为字符串
    var length = this.data.fileList.length
    var jsonObject = JSON.parse(this.data.fileList[length - 1].url)
    var fileName = jsonObject.fileName

    let userInfo = wx.getStorageSync('userInfo')
    console.log("!111", userInfo.userId)
    var campItem = {
      userId: userInfo.userId,
      campName: this.data.campName,
      longitude: this.data.longitude,
      latitude: this.data.latitude,
      location: this.data.campLocation,
      address: this.data.address,
      specificTime: this.data.specificTime,
      campType: this.data.campType,
      linkman: this.data.linkman,
      phone: this.data.phone,
      introduce: this.data.introduce,
      imageUrl: fileName,
      campUser: {
        userId: userInfo.userId
      }
    }
    let res = await http.addCamp(campItem)
    this.setData({
      campId: res.msg
    })
    let campId = res.msg;
    wx.setStorageSync('campId', campId)
  },
  //上传服务设施
  async subService() {
    let res = await http.addService({
      campId: this.data.campId,
      facilityIds: this.data.selectedItems
    })
    console.log("1111", this.data.campId)
    console.log(res)
  },

  //图片上传
  afterRead(event) {
    const {
      file
    } = event.detail;
    // 当设置 mutiple 为 true 时, file 为数组格式，否则为对象格式
    let userInfo = wx.getStorageSync("userInfo")
    let headerObj = {
      'content-type': 'application/json',
      "Authorization": `Bearer ${userInfo.token}`
    }
    var self = this;
    wx.uploadFile({
      url: 'http://127.0.0.1:8080/common/upload',
      filePath: file.url,
      name: 'file',
      formData: {
        user: 'test'
      },
      header: headerObj,
      success(res) {
        // 上传完成需要更新 fileList
        const {
          fileList = []
        } = self.data;
        fileList.push({
          ...file,
          url: res.data
        });
        self.setData({
          fileList
        });
        console.log(self.data.fileList)
      },
    });
  },
  // //显示营地营位
  // showCampsite(){
  //   let campsite = wx.getStorageSync('campsite')
  //   originalPrice = campsite.originalPrice
  //   memberPrice = campsite.memberPrice
  //   factor = campsite.factor
  // },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getFacilitiesList();
    // this.showCampsite();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {


  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})